﻿using System.Collections.Generic;

namespace ArabDynamicsUtility
{
    public partial class Url2Embed
    {
        /// <summary>
        /// provider class
        /// </summary>
        protected class provider{
            /// <summary>
            /// Source the embeded media comes from
            /// </summary>
            public string pryName { get; set; }
            /// <summary>
            /// URI of the media source
            /// </summary>
            public string pryWebsite { get; set; }
            /// <summary>
            /// Regexp for matching the submitted url to a stub
            /// </summary>
            public string pryUrlMatch { get; set; }
            /// <summary>
            /// The source of the media to embed.  Replace $2, $3, etc with matches from the url-match or fetch-match regexp ($1 is the entire matched url)
            /// </summary>
            public string pryEmbedSrc { get; set; }
            /// <summary>
            /// The default width of the embeded object
            /// </summary>
            public string pryEmbedWidth { get; set; }
            /// <summary>
            /// The default height of the embeded object
            /// </summary>
            public string pryEmbedHeight { get; set; }
            /// <summary>
            /// Thumb Image Src
            /// </summary>
            public string pryThumbImageSrc { get; set; }

            /// <summary>
            /// Thumb Image Api Url
            /// </summary>
            public string pryThumbImageApiUrl { get; set; }

            /// <summary>
            /// ThumbImage Api Attribute Name (node name for xml, property name for json)
            /// </summary>
            public string pryThumbImageApiAttName { get; set; }

            /// <summary>
            /// Iframe url with placeholders
            /// </summary>
            public string pryIframePlayer { get; set; }
            /// <summary>
            /// (optional) if set, html will be fetched and this regexp will be used to pull the media id or the source of the video
            /// </summary>
            public string pryFetchMatch { get; set; }
            /// <summary>
            /// (optional) if set, will be passed in the embed tag.  Replace $2, $3, etc with matches from url-match or fetch-match
            /// </summary>
            public string pryFlashVars { get; set; }

            /// <summary>
            /// get list of default providers
            /// </summary>
            /// <returns></returns>
            public static List<provider> getDefaultProviders()
            {
                List<provider> lstProviders = new List<provider>();

                lstProviders.Add(new provider()
                {
                    pryName = "Yahoo Screen",
                    pryWebsite = "http://screen.yahoo.com",
                    pryUrlMatch = "http://(.*)screen\\.yahoo\\.com/(.*)-([0-9]{1,12})\\.html",
                    pryEmbedWidth = "512",
                    pryEmbedHeight = "322",
                    pryIframePlayer = "http://$2screen.yahoo.com/$3-$4.html?format=embed"
                });
                lstProviders.Add( new provider(){
                    pryName = "YouTube",
                    pryWebsite = "http://www.youtube.com",
                    pryUrlMatch = "http://(?:video\\.google\\.(?:com|com\\.au|co\\.uk|de|es|fr|it|nl|pl|ca|cn)/(?:[^\"]*?))?(?:(?:www|au|br|ca|es|fr|de|hk|ie|in|il|it|jp|kr|mx|nl|nz|pl|ru|tw|uk)\\.)?youtube\\.com(?:[^\"]*?)?(?:&|&amp;|/|\\?|;|\\%3F|\\%2F)(?:video_id=|v(?:/|=|\\%3D|\\%2F))([0-9a-z-_]{11})",
                    pryEmbedSrc = "http://www.youtube.com/v/$2&rel=0&fs=1&hd=1",
                    pryEmbedWidth = "480",
                    pryEmbedHeight = "295",
                    pryThumbImageSrc = "http://img.youtube.com/vi/$2/0.jpg",
                    pryIframePlayer = "http://www.youtube.com/embed/$2"
                });
                  lstProviders.Add( new provider(){
                    pryName = "YouTube (Playlists)",
                    pryWebsite = "http://www.youtube.com",
                    pryUrlMatch = "http://(?:(?:www|au|br|ca|es|fr|de|hk|ie|in|il|it|jp|kr|mx|nl|nz|pl|ru|tw|uk)\\.)?youtube\\.com(?:[^]*?)?(?:&|&amp;|/|\\?|;)(?:id=|p=|p/)([0-9a-f]{16})",
                    pryEmbedSrc = "http://www.youtube.com/p/$2&rel=0&fs=1",
                    pryEmbedWidth = "480",
                    pryEmbedHeight = "385"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Dailymotion",
                    pryWebsite = "http://www.dailymotion.com",
                    pryUrlMatch = "http://(?:www\\.)?dailymotion\\.(?:com|alice\\.it)/(?:(?:[^\"]*?)?video|swf)/([a-z0-9]{1,18})",
                    pryEmbedSrc = "http://www.dailymotion.com/swf/$2&related=0",
                    pryEmbedWidth = "420",
                    pryEmbedHeight = "339",
                    pryThumbImageSrc = "http://www.dailymotion.com/thumbnail/160x120/video/$2"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Google Video",
                    pryWebsite = "http://video.google.com",
                    pryUrlMatch = "http://video\\.google\\.(com|com\\.au|co\\.uk|de|es|fr|it|nl|pl|ca|cn)/(?:videoplay|url|googleplayer\\.swf)\\?(?:[^\"]*?)?docid=([0-9a-z-_]{1,20})",
                    pryEmbedSrc = "http://video.google.$2/googleplayer.swf?docId=$3",
                    pryEmbedWidth = "400",
                    pryEmbedHeight = "326"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "MegaVideo",
                    pryWebsite = "http://www.megavideo.com",
                    pryUrlMatch = "http://(?:www\\.)?megavideo\\.com/(?:\\?(?:[^\"]*?)?v=|v/)([0-9a-z]{8})",
                    pryEmbedSrc = "http://www.megavideo.com/v/$2.0.0",
                    pryEmbedWidth = "440",
                    pryEmbedHeight = "359"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "MetaCafe",
                    pryWebsite = "http://www.metacafe.com",
                    pryUrlMatch = "http://(?:www\\.)?metacafe\\.com/(?:watch|fplayer)/([0-9A-Za-z_-]{1,20})/", //"http://(?:www\\.)?metacafe\\.com/(?:watch|fplayer)/(\\w{1,10})/",
                    pryEmbedSrc = "http://www.metacafe.com/fplayer/$2/metacafe.swf",
                    pryEmbedWidth = "400",
                    pryEmbedHeight = "345",
                    pryThumbImageSrc = "http://s6.mcstatic.com/thumb/$2.jpg"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Revver",
                    pryWebsite = "http://www.revver.com",
                    pryUrlMatch = "http://(?:one\\.|www\\.)?revver\\.com/(?:watch|video)/([0-9]{1,8})",
                    pryEmbedSrc = "http://flash.revver.com/player/1.0/player.swf?mediaId=$2",
                    pryEmbedWidth = "480",
                    pryEmbedHeight = "392"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Vimeo",
                    pryWebsite = "http://www.vimeo.com",
                    pryUrlMatch = "http://(?:www\\.)?vimeo\\.com/([0-9]{1,12})",
                    pryEmbedSrc = "http://vimeo.com/moogaloop.swf?clip_id=$2&server=vimeo.com&fullscreen=1&show_title=1&show_byline=1&show_portrait=0&color=01AAEA",
                    pryEmbedWidth = "400",
                    pryEmbedHeight = "302",
                    pryIframePlayer = "http://player.vimeo.com/video/$2",
                    pryThumbImageApiUrl="http://vimeo.com/api/v2/video/$2.xml",
                    pryThumbImageApiAttName = "thumbnail_large"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "123video",
                    pryWebsite = "http://www.123video.nl",
                    pryUrlMatch = "http://(?:www\\.)?123video\\.nl/(?:playvideos\\.asp\\?(?:[^\"]*?)?MovieID=|123video_share\\.swf\\?mediaSrc=)([0-9]{1,8})",
                    pryEmbedSrc = "http://www.123video.nl/123video_share.swf?mediaSrc=$2",
                    pryEmbedWidth = "420",
                    pryEmbedHeight = "339"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "5min Life Videopedia",
                    pryWebsite = "http://www.5min.com",
                    pryUrlMatch = "http://(?:www\\.)?5min\\.com/(?:Embeded/|Video/(?:[0-9a-z_-]*?)?-)([0-9]{8})",
                    pryEmbedSrc = "http://www.5min.com/Embeded/$2/",
                    pryEmbedWidth = "425",
                    pryEmbedHeight = "355"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "AdultSwim",
                    pryWebsite = "http://www.adultswim.com",
                    pryUrlMatch = "http://www\\.adultswim\\.com/video/(?:vplayer/index\\.html\\?id=|\\?episodeID=|ASVPlayer\\.swf\\?id=)([0-9a-f]{32})",
                    pryEmbedSrc = "http://www.adultswim.com/video/vplayer/index.html?id=$2",
                    pryEmbedWidth = "425",
                    pryEmbedHeight = "355"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "AniBoom",
                    pryWebsite = "http://www.aniboom.com",
                    pryUrlMatch = "http://(?:www\\.|api\\.)?aniboom\\.com/(?:Player.aspx\\?(?:[^\"]*?)?v=|video/|e/)([0-9]{1,10})",
                    pryEmbedSrc = "http://api.aniboom.com/e/$2",
                    pryEmbedWidth = "425",
                    pryEmbedHeight = "355"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "AOL Video (Old)",
                    pryWebsite = "http://video.aol.com",
                    pryUrlMatch = "http://video\\.aol\\.com/partner/([a-z0-9-_]+)/([a-z0-9-_]+)/([a-z0-9:\\.]+)",
                    pryEmbedSrc = "http://media.mtvnservices.com/$4",
                    pryEmbedWidth = "415",
                    pryEmbedHeight = "347"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Archive.org",
                    pryWebsite = "http://www.archive.org",
                    pryUrlMatch = "http://(?:www\\.)?archive\\.org/download/((?:[0-9a-z_-]*?)/(?:[0-9a-z_-]*?)\\.flv)",
                    pryEmbedSrc = "http://www.archive.org/flow/FlowPlayerLight.swf?config=%7Bembedded%3Atrue%2CshowFullScreenButton%3Atrue%2CshowMuteVolumeButton%3Atrue%2CshowMenu%3Atrue%2CautoBuffering%3Afalse%2CautoPlay%3Afalse%2CinitialScale%3A%27fit%27%2CmenuItems%3A%5Bfalse%2Cfalse%2Cfalse%2Cfalse%2Ctrue%2Ctrue%2Cfalse%5D%2CusePlayOverlay%3Afalse%2CshowPlayListButtons%3Atrue%2CplayList%3A%5B%7Burl%3A%27$2%27%7D%5D%2CcontrolBarGloss%3A%27high%27%2CshowVolumeSlider%3Atrue%2CbaseURL%3A%27http%3A%2F%2Fwww%2Earchive%2Eorg%2Fdownload%2F%27%2Cloop%3Afalse%2CcontrolBarBackgroundColor%3A%270x000000%27%7D",
                    pryEmbedWidth = "480",
                    pryEmbedHeight = "360"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Atom",
                    pryWebsite = "http://www.atom.com",
                    pryUrlMatch = "http://(?:www\\.)?atom\\.com/funny_videos/([A-z0-9-_]*)/",
                    pryFetchMatch = "<embed src=\"([A-z:/\\.0-9-_=]*)\"",
                    pryEmbedSrc = "$2",
                    pryEmbedWidth = "425",
                    pryEmbedHeight = "354"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Island Tickle Video",
                    pryWebsite = "http://www.islandticklevideo.com",
                    pryUrlMatch = "http://(?:www\\.)?islandticklevideo\\.com/mediashare/video/(.*)",
                    pryFetchMatch = "http://www\\.islandticklevideo\\.com/mediashare/modules/vPlayer/vPlayercfg\\.php\\?id=([a-z0-9]{10,25})",
                    pryEmbedSrc = "http://www.islandticklevideo.com/mediashare/modules/vPlayer/vPlayer.swf?f=http://www.islandticklevideo.com/mediashare/modules/vPlayer/vPlayercfg.php?id=$2",
                    pryEmbedWidth = "480",
                    pryEmbedHeight = "385"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Bebo",
                    pryWebsite = "http://www.bebo.com",
                    pryUrlMatch = "(http://bebo\\.(?:[0-9]{1,4})\\.download\\.videoegg\\.com(?:(?:/(?:[0-9a-z]*)){5}))",
                    pryEmbedSrc = "http://static.videoegg.com/videoegg/loader.swf?file=$2",
                    pryEmbedWidth = "425",
                    pryEmbedHeight = "350"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Blastro",
                    pryWebsite = "http://www.blastro.com",
                    pryUrlMatch = "http://(?:www\\.)?blastro\\.com/player/([a-z0-9-_]*)\\.html",
                    pryEmbedSrc = "http://images.blastro.com/images/flashplayer/flvPlayer.swf?site=www.blastro.com&amp;filename=$2",
                    pryEmbedWidth = "512",
                    pryEmbedHeight = "408"
                  });
                 lstProviders.Add( new provider(){
                   pryName = "Blip.tv",
                   pryWebsite = "http://www.blip.tv",
                   pryUrlMatch = "http://blip\\.tv/(play|file)/([0-9]*)",
                   pryFetchMatch = "<link rel=\"video_src\" href=\"([A-z:/\\.0-9-_=]*)",
                   pryEmbedSrc = "$2",
                   pryEmbedWidth = "500",
                   pryEmbedHeight = "315",
                 });
                  lstProviders.Add( new provider(){
                    pryName = "BoFunk",
                    pryWebsite = "http://www.bofunk.com",
                    pryUrlMatch = "http://(?:www\\.)?bofunk\\.com/video/[0-9]{2,7}/",
                    pryFetchMatch = "<embed src=\"/[a-z]/([a-z:/\\.0-9-_=?%]*)\"",
                    pryEmbedSrc = "http://www.bofunk.com/e/$2",
                    pryEmbedWidth = "446",
                    pryEmbedHeight = "370"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Break",
                    pryWebsite = "http://www.break.com/",
                    pryUrlMatch = "http://(?:www\\.)?break\\.com/(?:index|usercontent)/",
                    pryFetchMatch = "http://embed\\.break\\.com/([0-9a-z]{1,8})",
                    pryEmbedSrc = "$1",
                    pryEmbedWidth = "464",
                    pryEmbedHeight = "383"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Brightcove.com",
                    pryWebsite = "http://link.brightcove.com",
                    pryUrlMatch = "http://link\\.brightcove\\.com/services/link/bcpid([0-9]+)/bctid([0-9]+)",
                    pryEmbedSrc = "http://services.brightcove.com/services/viewer/federated_f8/$2?videoId=$3&playerId=$2&viewerSecureGatewayURL=https://console.brightcove.com/services/amfgateway&servicesURL=http://services.brightcove.com/services&cdnURL=http://admin.brightcove.com&domain=embed&autoStart=false&",
                    pryEmbedWidth = "486",
                    pryEmbedHeight = "412"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "CBS News",
                    pryWebsite = "http://www.cbsnews.com/video",
                    pryUrlMatch = "http://(?:www\\.)?cbsnews\\.com/video/watch/",
                    pryFetchMatch = "CBSVideo\\.setVideoId\\(.([a-z0-9-_]{1,32}).\\)",
                    pryEmbedSrc = "http://cnettv.cnet.com/av/video/cbsnews/atlantis2/player-dest.swf",
                    pryEmbedWidth = "425",
                    pryEmbedHeight = "324",
                    pryFlashVars = "tag=contentBody;housing&releaseURL=http://cnettv.cnet.com/av/video/cbsnews/atlantis2/player-dest.swf&videoId=$2&partner=news&vert=News&autoPlayVid=false&name=cbsPlayer&allowScriptAccess=always&wmode=transparent&embedded=y&scale=noscale&rv=n&salign=tl"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Cellfish",
                    pryWebsite = "http://www.cellfish.com",
                    pryUrlMatch = "http://(cellfish\\.|www\\.)?cellfish\\.com/(?:video|ringtone|multimedia)/([0-9]{1,10})/",
                    pryEmbedSrc = "http://$2cellfish.com/static/swf/player8.swf?Id=$3",
                    pryEmbedWidth = "420",
                    pryEmbedHeight = "315"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Clarin",
                    pryWebsite = "http://www.videos.clarin.com",
                    pryUrlMatch = "http://(?:www\\.)videos\\.clarin\\.com/index\\.html\\?id=([0-9]{1,12})",
                    pryEmbedSrc = "http://www.clarin.com/shared/v9/swf/clarinvideos/player.swf",
                    pryEmbedWidth = "533",
                    pryEmbedHeight = "438",
                    pryFlashVars = "autoplay=false&amp;SEARCH=http://www.videos.clarin.com/decoder/buscador_getMtmYRelacionados/$2|CLARIN_VIDEOS|VIDEO|EMBEDDED|10|1|10|null.xml&amp;RUTAS=http://www.clarin.com/shared/v9/swf/clarinvideos/rutas.xml"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Clip.vn",
                    pryWebsite = "http://www.clip.vn",
                    pryUrlMatch = "http://(?:www\\.)?clip\\.vn/w(?:atch/(?:[a-z0-9-_]*?))?/([a-z0-9_-]{1,5}});vn",
                    pryEmbedSrc = "http://www.clip.vn/w/$2,vn,0,,hq",
                    pryEmbedWidth = "448",
                    pryEmbedHeight = "361"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "ClipFish (Old)",
                    pryWebsite = "http://www.clipfish.de",
                    pryUrlMatch = "http://(?:www\\.)?clipfish\\.de/(?:(?:player\\.php|videoplayer\\.swf)\\?(?:[^\"]*?)?vid=|video/)([0-9]{1,20})",
                    pryEmbedSrc = "http://www.clipfish.de/videoplayer.swf?as=0&vid=$2&r=1",
                    pryEmbedWidth = "464",
                    pryEmbedHeight = "380"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "ClipFish (New)",
                    pryWebsite = "http://www.clipfish.de",
                    pryUrlMatch = "http://(?:www\\.)?clipfish\\.de/(?:video)?player\\.(?:swf|php)(?:[^\"]*?)videoid=((?:[a-z0-9]{18})(?:==)?|(?:[a-z0-9]{6})(?:==)?)",
                    pryEmbedSrc = "http://www.clipfish.de/videoplayer.swf?as=0&videoid=$2%3D%3D&r=1",
                    pryEmbedWidth = "464",
                    pryEmbedHeight = "380"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "ClipJunkie",
                    pryWebsite = "http://www.clipjunkie.com",
                    pryUrlMatch = "http://(?:www\\.)?clipjunkie\\.com/((?:[^\"]*?)-vid(?:[0-9]{1,10}))\\.html",
                    pryEmbedSrc = "http://www.clipjunkie.com/flvplayer/flvplayer.swf?flv=http://videos.clipjunkie.com/videos/$2.flv&themes=http://www.clipjunkie.com/flvplayer/themes.xml&playList=http://www.clipjunkie.com/playlist.php&config=http://www.clipjunkie.com/skin/config.xml",
                    pryEmbedWidth = "460",
                    pryEmbedHeight = "357"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "ClipMoon",
                    pryWebsite = "http://www.clipmoon.com",
                    pryUrlMatch = "http://(?:www\\.)?clipmoon\\.com/(?:videos/|(?:[^\"]*?)viewkey=)([0-9a-z]{1,10})",
                    pryEmbedSrc = "http://www.clipmoon.com/flvplayer.swf?config=http://www.clipmoon.com/flvplayer.php?viewkey=$2&external=yes",
                    pryEmbedWidth = "460",
                    pryEmbedHeight = "357"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Clipser",
                    pryWebsite = "http://www.clipser.com",
                    pryUrlMatch = "http://(?:www\\.)?clipser\\.com/(?:Play\\?vid=|watch_video/)([0-9]{4,10})",
                    pryEmbedSrc = "http://www.clipser.com/Play?vid=$2",
                    pryEmbedWidth = "425",
                    pryEmbedHeight = "355"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "ClipShack",
                    pryWebsite = "http://www.clipshack.com",
                    pryUrlMatch = "http://(?:www\\.)?clipshack\\.com/Clip\\.aspx\\?key=([0-9a-f]{16})",
                    pryEmbedSrc = "http://www.clipshack.com/player.swf?key=$2",
                    pryEmbedWidth = "430",
                    pryEmbedHeight = "370"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "CNetTV",
                    pryWebsite = "http://cnettv.cnet.com",
                    pryUrlMatch = "http://cnettv\\.cnet\\.com/[a-z0-9\\-]*\\/[0-9]{4}-[0-9]_[0-9]{2}-([0-9]{5,9})\\.html",
                    pryEmbedSrc = "http://www.cnet.com/av/video/flv/universalPlayer/universalSmall.swf",
                    pryEmbedWidth = "364",
                    pryEmbedHeight = "280",
                    pryFlashVars = "playerType=embedded&type=id&value=$2"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "CollegeHumor",
                    pryWebsite = "http://www.collegehumour.com",
                    pryUrlMatch = "http://(?:www\\.)?collegehumor\\.com/video:([0-9]{1,12})",
                    pryEmbedSrc = "http://www.collegehumor.com/moogaloop/moogaloop.swf?clip_id=$2",
                    pryEmbedWidth = "480",
                    pryEmbedHeight = "360"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "TheDailyShow",
                    pryWebsite = "http://www.thedailyshow.com",
                    pryUrlMatch = "http://(?:www\\.)?thedailyshow\\.com/(?:watch|full\\-episodes)",
                    pryFetchMatch = "swfo.embedSWF\\(.*(http://media.mtvnservices.com/mgid:cms:(video|fullepisode):comedycentral\\.com:[0-9]{1,10})",
                    pryEmbedSrc = "$2",
                    pryEmbedWidth = "360",
                    pryEmbedHeight = "301"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "ColbertNation",
                    pryWebsite = "http://www.colbertnation.com",
                    pryUrlMatch = "http:\\/\\/(?:www\\.)?colbertnation\\.com\\/the-colbert-report-videos\\/([0-9]*)\\/",
                    pryEmbedSrc = "http://media.mtvnservices.com/mgid:cms:item:comedycentral.com:$2",
                    pryEmbedWidth = "360",
                    pryEmbedHeight = "301"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Crackle",
                    pryWebsite = "http://www.crackle.com",
                    pryUrlMatch = "http://(?:www\\.)?crackle\\.com/c/([a-z0-9_]*?)/([a-z0-9_]*?)/([0-9]{1,10})",
                    pryEmbedSrc = "http://www.crackle.com/p/$2/$3.swf?id=$4",
                    pryEmbedWidth = "400",
                    pryEmbedHeight = "328"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "CrunchyRoll",
                    pryWebsite = "http://www.crunchyroll.com",
                    pryUrlMatch = "http://(?:www\\.)?crunchyroll\\.com/getitem\\?ih=([0-9a-z]{19})&(?:amp;)?videoid=([0-9]{1,12})&(?:amp;)?mediaid=([0-9]{1,12})&(?:amp;)?hash=([0-9a-z]{19})",
                    pryEmbedSrc = " http://www.crunchyroll.com/flash/20080910153703.043ec803b06cc356a1e15c1184831a24/oldplayer2.swf?file=http%3A%2F%2Fwww.crunchyroll.com%2Fgetitem%3Fih%3D$2%26videoid%3D$3%26mediaid%3D$4%26hash%3D$5&autostart=false",
                    pryEmbedWidth = "576",
                    pryEmbedHeight = "325"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Current",
                    pryWebsite = "http://www.current.com",
                    pryUrlMatch = "http://(?:www\\.)?current\\.com/items/([0-9]{8})",
                    pryEmbedSrc = "http://current.com/e/$2/en_US",
                    pryEmbedWidth = "400",
                    pryEmbedHeight = "400"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Dailyhaha",
                    pryWebsite = "http://www.dailyhaha.com",
                    pryUrlMatch = "http://(?:www\\.)?dailyhaha\\.com/_vids/(?:Whohah\\.swf\\?Vid=)?([a-z0-9_-]*?)\\.(?:htm|flv)",
                    pryEmbedSrc = "http://www.dailyhaha.com/_vids/Whohah.swf?Vid=$2.flv",
                    pryEmbedWidth = "425",
                    pryEmbedHeight = "350",
                });
                  lstProviders.Add( new provider(){
                    pryName = "Dave.tv",
                    pryWebsite = "http://www.dave.tv",
                    pryUrlMatch = "http://(?:www\\.)?dave\\.tv/MediaPlayer.aspx\\?(?:[^\"]*?)?contentItemId=([0-9]{1,10})",
                    pryEmbedSrc = "http://dave.tv/dbox/dbox_small.swf?configURI=http://dave.tv/dbox/config.ashx&volume=50&channelContentId=$2",
                    pryEmbedWidth = "300",
                    pryEmbedHeight = "260"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "DotSub (w/o Captions)",
                    pryWebsite = "http://www.dotsub.com",
                    pryUrlMatch = "http://(?:www\\.)?dotsub\\.com/(?:media/|view/)((?:[0-9a-z]{8})(?:(?:-(?:[0-9a-z]{4})){3})-(?:[0-9a-z]{12}))",
                    pryEmbedSrc = "http://dotsub.com/static/players/embed8l.swf?mediauri=http://dotsub.com/media/$2/em/flv/en",
                    pryEmbedWidth = "480",
                    pryEmbedHeight = "392"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "DoubleViking",
                    pryWebsite = "http://www.doubleviking.com",
                    pryUrlMatch = "http://(?:www\\.)?doubleviking\\.com/videos/page[0-9]\\.html/[a-z\\-]*[0-9]{1,8}\\.html",
                    pryEmbedSrc = "http://www.doubleviking.com/mediaplayer.swf?file=$2",
                    pryEmbedWidth = "400",
                    pryEmbedHeight = "340"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Dropshots",
                    pryWebsite = "http://www.dropshots.com",
                    pryUrlMatch = "(http://media(?:[0-9]{0,2})\\.dropshots\\.com/photos(?:(?:/(?:[0-9]{1,10})){1,3})\\.flv)",
                    pryEmbedSrc = "http://www.dropshots.com/dropshotsplayer.swf?url=$2",
                    pryEmbedWidth = "480",
                    pryEmbedHeight = "385"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Dv.ouou",
                    pryWebsite = "http://dv.ouou.com",
                    pryUrlMatch = "http://dv\\.ouou\\.com/(?:play/v_|v/)([a-f0-9]{14})",
                    pryEmbedSrc = "http://dv.ouou.com/v/$2",
                    pryEmbedWidth = "480",
                    pryEmbedHeight = "385"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Divshare",
                    pryWebsite = "http://www.divshare.com",
                    pryUrlMatch = "http://www\\.divshare\\.com/download/([^\"]*)",
                    pryEmbedSrc = "http://www.divshare.com/flash/playlist?myId=$2",
                    pryEmbedWidth = "335",
                    pryEmbedHeight = "28"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "EASportsWorld",
                    pryWebsite = "http://www.easportsworld.com",
                    pryUrlMatch = "(http://videocdn\\.easw\\.easports\\.com/easportsworld/media/(?:[0-9]{1,12})/(?:[0-9a-z-_]*?)\\.flv)",
                    pryEmbedSrc = "http://ll-999.ea.com/sonet-easw/2.2.4.0/flash/sw/videos/mediaplayer.swf?file=$2&image=http://ll-999.ea.com/sonet-easw/2.2.4.0/images/sw/videos/preview.jpg&backcolor=0x000000&frontcolor=0x006BCC&lightcolor=0x006BCC",
                    pryEmbedWidth = "566",
                    pryEmbedHeight = "355"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "EbaumsWorld",
                    pryWebsite = "http://www.ebaumsworld.com",
                    pryUrlMatch = "http://www\\.ebaumsworld\\.com/(?:video|audio)/(?:watch|play)",
                    pryFetchMatch = "id=\"embed\".*flashvars=&quot;(.*)&quot;\\ wmode",
                    pryEmbedSrc = "http://www.ebaumsworld.com/mediaplayer.swf",
                    pryEmbedWidth = "425",
                    pryEmbedHeight = "345",
                    pryFlashVars = "$2"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "ESPN",
                    pryWebsite = "http://www.espn.com",
                    pryUrlMatch = "http:\\/\\/espn\\.go\\.com\\/video\\/clip\\?id=([0-9a-z]*)",
                    pryEmbedSrc = "http://espn.go.com/videohub/player/embed.swf",
                    pryEmbedWidth = "384",
                    pryEmbedHeight = "216",
                    pryFlashVars = "id=$2"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Fandome",
                    pryWebsite = "http://www.fandome.com",
                    pryUrlMatch = "http://[a-z]*\\.fandome\\.com/video/([0-9]{3,6})/[a-z0-9\\-_]*/",
                    pryEmbedSrc = "http://www.kaltura.com/index.php/kwidget/wid/_35168/uiconf_id/1070752",
                    pryEmbedWidth = "480",
                    pryEmbedHeight = "380",
                    pryFlashVars = "entryId=http://s3.amazonaws.com/lazyjock/$2.flv&amp;autoplay=false"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Flickr",
                    pryWebsite = "http://www.flickr.com",
                    pryUrlMatch = "http://(?:www\\.|www2\\.)?flickr\\.com/photos/[a-z0-9-_]*/([0-9]{8,12})",
                    pryFetchMatch = "id=\"stewart_swf([0-9]{8,12})_div\"",
                    pryEmbedSrc = "http://www.flickr.com/apps/video/stewart.swf",
                    pryEmbedWidth = "400",
                    pryEmbedHeight = "300",
                    pryFlashVars = "intl_lang=en-us&amp;photo_id=$2"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "FunnyOrDie",
                    pryWebsite = "http://www.funnyordie.com",
                    pryUrlMatch = "http://(?:www\\.|www2\\.)?funnyordie\\.com/(?:videos/|public/flash/fodplayer\\.swf\\?key=)([0-9a-z]{8,12})",
                    pryEmbedSrc = "http://player.ordienetworks.com/flash/fodplayer.swf",
                    pryEmbedWidth = "464",
                    pryEmbedHeight = "388",
                    pryFlashVars = "key=$2"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "FunMansion",
                    pryWebsite = "http://www.funmansion.com",
                    pryUrlMatch = "http://www\\.funmansion\\.com/videos/[a-z0-9-_]*\\.html",
                    pryFetchMatch = "<iframe src=\"http://media\\.funmansion\\.com/funmansion/player/player\\.php\\?url=([a-z0-9:/\\.-_]*\\.flv)",
                    pryEmbedSrc = "http://media.funmansion.com/funmansion/player/flvplayer.swf?flv=$2",
                    pryEmbedWidth = "446",
                    pryEmbedHeight = "350"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "G4TV",
                    pryWebsite = "http://www.g4tv.com",
                    pryUrlMatch = "http://(?:www\\.)?g4tv\\.com/(?:xplay/videos/|lv3/|sv3/)([0-9]{1,10})",
                    pryEmbedSrc = "http://www.g4tv.com/lv3/$2",
                    pryEmbedWidth = "480",
                    pryEmbedHeight = "418"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "GameKyo",
                    pryWebsite = "http://www.gamekyo.com",
                    pryUrlMatch = "http://(?:www\\.)?gamekyo\\.com/(?:video|flash/flvplayer\\.swf\\?videoid=)[a-z]{2}([0-9]{1,7})",
                    pryEmbedSrc = "http://www.gamekyo.com/flash/flvplayer.swf?videoid=$2",
                    pryEmbedWidth = "512",
                    pryEmbedHeight = "307",
                });
                  lstProviders.Add( new provider(){
                    pryName = "GameSpot",
                    pryWebsite = "http://www.gamespot.com",
                    pryUrlMatch = "http://(?:(?:[a-z]*?)\\.)?gamespot\\.com/(?:[^\"]*?)video/(?:(?:[0-9]{1,12})/)?([0-9]{1,12})",
                    pryEmbedSrc = "http://image.com.com/gamespot/images/cne_flash/production/media_player/proteus/one/proteus2.swf",
                    pryEmbedWidth = "432",
                    pryEmbedHeight = "362",
                    pryFlashVars = "skin=http://image.com.com/gamespot/images/cne_flash/production/media_player/proteus/one/skins/gamespot.png&paramsURI=http%3A%2F%2Fwww.gamespot.com%2Fpages%2Fvideo_player%2Fxml.php%3Fid%3D$2%26mode%3Dembedded%26width%3D432%26height%3D362%2F",
                });
                  lstProviders.Add( new provider(){
                    pryName = "GameTrailers (Inc. User Movies)",
                    pryWebsite = "http://www.gametrailers.com",
                    pryUrlMatch = "http://(?:www\\.)?gametrailers\\.com/(?:player/(u)?(?:sermovies/)?|remote_wrap\\.php\\?(u)?mid=)([0-9]{1,10})",
                    pryEmbedSrc = "http://www.gametrailers.com/remote_wrap.php?$2$3mid=$4", //Either $2 or $3 will be empty
                    pryEmbedWidth = "480",
                    pryEmbedHeight = "392"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "GameTube",
                    pryWebsite = "http://www.gametube.org",
                    pryUrlMatch = "http://(?:www\\.)?gametube\\.org/(?:\\#/video/|htmlVideo\\.jsp\\?id=|miniPlayer\\.swf\\?vidId=)([A-z0-9=_-]{28})",
                    pryEmbedSrc = "http://www.gametube.org/miniPlayer.swf?vidId=$2",
                    pryEmbedWidth = "425",
                    pryEmbedHeight = "335"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "GameVideos.1up",
                    pryWebsite = "http://www.gamevideos.1up.com",
                    pryUrlMatch = "http://(?:www\\.)?gamevideos(?:\\.1up)?\\.com/(?:video/id/|video/embed\\?(?:[^\"]*?)?video=)([0-9]{1,8})",
                    pryEmbedSrc = "http://gamevideos.1up.com/swf/gamevideos11.swf?embedded=1&fullscreen=1&autoplay=0&src=http://gamevideos.1up.com/video/videoListXML%3Fid%3D$2%26adPlay%3Dfalse",
                    pryEmbedWidth = "500",
                    pryEmbedHeight = "319"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "GarageTv",
                    pryWebsite = "http://www.garagetv.be",
                    pryUrlMatch = "(http://www\\.garagetv\\.be/v/(?:[0-9a-z-\\!_]*?)/v\\.aspx)",
                    pryEmbedSrc = "$2",
                    pryEmbedWidth = "430",
                    pryEmbedHeight = "369"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Gloria",
                    pryWebsite = "http://www.gloria.tv",
                    pryUrlMatch = "http://(?:www\\.)?gloria\\.tv/\\?video=([a-z0-9]{20})",
                    pryEmbedSrc = "http://www.gloria.tv/flvplayer.swf?file=http%3A%2F%2Fwww.gloria.tv%2F%3Fembed%26video%3D$2%26width%3D512%26height%3D288&type=flv&image=http%3A%2F%2Fwww.gloria.tv%2F%3Fembed%26image%3D$2%26width%3D512%26height%3D288&autostart=false&showdigits=true&usefullscreen=false&logo=http%3A%2F%2Fwww.gloria.tv%2Fimage%2Flogo_embed.png&link=http%3A%2F%2Fwww.gloria.tv%2F%3Fvideo%3Dddexrl6eelym3gaabxmz%26amp%3Bview%3Dflash&linktarget=_blank&volume=100&backcolor=0xe0e0e0&frontcolor=0x000000&lightcolor=0xf00000",
                    pryEmbedWidth = "512",
                    pryEmbedHeight = "404"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "GoEar",
                    pryWebsite = "http://www.goear.com",
                    pryUrlMatch = "http://(?:www\\.)?goear\\.com/listen\\.php\\?v=([a-z0-9]{7})",
                    pryEmbedSrc = "http://www.goear.com/files/external.swf?file=$2",
                    pryEmbedWidth = "353",
                    pryEmbedHeight = "132"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Good.IS",
                    pryWebsite = "http://www.good.is",
                    pryUrlMatch = "http://www\\.good\\.is/\\?p=([0-9]{3,7})",
                    pryFetchMatch = "(http:\\/\\/s3\\.amazonaws\\.com\\/.*Url=http:\\/\\/www\\.good\\.is\\/\\?p=[0-9]{3,7})&quot;\\/&gt;&lt;embed src=&",
                    pryEmbedSrc = "$2",
                    pryEmbedWidth = "416",
                    pryEmbedHeight = "264",
                    pryFlashVars = "$2"
                  });

                  lstProviders.Add( new provider(){
                    pryName = "Glumbert",
                    pryWebsite = "http://www.glumbert.com",
                    pryUrlMatch = "http://(?:www\\.)?glumbert\\.com/(?:embed|media)/([a-z0-9_-]{1,30})",
                    pryEmbedSrc = "http://www.glumbert.com/embed/$2",
                    pryEmbedWidth = "425",
                    pryEmbedHeight = "335"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "GodTube",
                    pryWebsite = "http://www.godtube.com",
                    pryUrlMatch = "http://(?:www\\.)?godtube\\.com/view_video\\.php\\?(?:[^\"]*?)?viewkey=([0-9a-f]{20})",
                    pryEmbedSrc = "http://godtube.com/flvplayer.swf?viewkey=$2",
                    pryEmbedWidth = "330",
                    pryEmbedHeight = "270"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "GrindTv",
                    pryWebsite = "http://www.grindtv.com",
                    pryUrlMatch = "(http://(?:www\\.)?grindtv\\.com/video/(.*)/(?:[^\"]*?)i=(?:[0-9]{1,12}))",
                    pryEmbedSrc = "http://images.grindtv.com/1.0.2/swf/video.swf?sa=1&si=1&i=$3&sct=$2",
                    pryEmbedWidth = "640",
                    pryEmbedHeight = "480"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Guzer",
                    pryWebsite = "http://www.guzer.com",
                    pryUrlMatch = "http://(?:www\\.)?guzer\\.com/videos/(.*).php",
                    pryEmbedSrc = "http://www.guzer.com/player/mediaplayer.swf",
                    pryEmbedWidth = "486",
                    pryEmbedHeight = "382",
                    pryFlashVars = "height=382&amp;width=486&amp;file=http://media.guzer.com/videos/$2.flv&amp;image=http://www.guzer.com/videos/s$2.jpg"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "TheHub",
                    pryWebsite = "http://hub.witness.org",
                    pryUrlMatch = "http://hub\\.witness\\.org/(?:en|fr|es)/node/([0-9]{1,10})",
                    pryEmbedSrc = "http://hub.witness.org/sites/hub.witness.org/modules/contrib-5/flvmediaplayer/mediaplayer.swf?file=http://hub.witness.org/xspf/node/$2&overstretch=fit&repeat=false&logo=http://hub.witness.org/sites/hub.witness.org/themes/witness/images/hub_wm.png",
                    pryEmbedWidth = "320",
                    pryEmbedHeight = "260"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Howcast",
                    pryWebsite = "http://www.howcast.com",
                    pryUrlMatch = "http://(?:www\\.)?howcast\\.com/videos/([0-9]{1,8})",
                    pryEmbedSrc = "http://www.howcast.com/flash/howcast_player.swf?file=$2&theme=black",
                    pryEmbedWidth = "432",
                    pryEmbedHeight = "276"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Hulu (Usa Only)",
                    pryWebsite = "http://www.hulu.com",
                    pryUrlMatch = "http://(?:www\\.)?hulu\\.com/watch/(?:[0-9]{1,8})/",
                    pryFetchMatch = "<link rel=\"video_src\" href=\"([A-z:/\\.0-9-_=?]*)",
                    pryEmbedSrc = "$2",
                    pryEmbedWidth = "512",
                    pryEmbedHeight = "296"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Humour",
                    pryWebsite = "http://www.humour.com",
                    pryUrlMatch = "http://(?:video|www)\\.humour\\.com/videos-comiques/videos.asp\\?[A-z]*\\=([1-9]{1,8})",
                    pryEmbedSrc = "/videos-comiques/player/mediaplayer.swf",
                    pryEmbedWidth = "425",
                    pryEmbedHeight = "355"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Video.i.ua",
                    pryWebsite = "http://video.i.ua",
                    pryUrlMatch = "(http://i1\\.i\\.ua/video/vp3\\.swf\\?9&(?:amp;)?userID=(?:[0-9]{1,20})&(?:amp;)?videoID=(?:[0-9]{1,20})&(?:amp;)?playTime=(?:[0-9]{1,20})&(?:amp;)?repeat=0&(?:amp;)?autostart=0&(?:amp;)?videoSize=(?:[0-9]{1,20})&(?:amp;)?userStatus=(?:[0-9]{1,2})&(?:amp;)?notPreview=(?:[0-9]{1,2})&(?:amp;)?mID=m?(?:[0-9]{1,2}))",
                    pryEmbedSrc = "$2",
                    pryEmbedWidth = "450",
                    pryEmbedHeight = "349"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "IGN",
                    pryWebsite = "http://www.ign.com",
                    pryUrlMatch = "http://(?:(?:(?:[a-z0-9]*?)\\.){0,3})ign\\.com/(?:[a-z0-9-_]*?)?/objects/([0-9]{1,10})/(?:(?:[a-z0-9-_]*?)/)?videos/",
                    pryEmbedSrc = "http://videomedia.ign.com/ev/ev.swf?object_ID=$2",
                    pryEmbedWidth = "433",
                    pryEmbedHeight = "360"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "iJigg",
                    pryWebsite = "http://www.ijigg.com",
                    pryUrlMatch = "http://(?:www\\.)?ijigg\\.com/(?:jiggPlayer\\.swf\\?songID=|songs/|trackback/)([0-9A-Z]{9,12})",
                    pryEmbedSrc = "http://www.ijigg.com/jiggPlayer.swf?songID=$2&Autoplay=0",
                    pryEmbedWidth = "315",
                    pryEmbedHeight = "80"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "IMDB",
                    pryWebsite = "http://www.imdb.com",
                    pryUrlMatch = "http://(?:www\\.)?totaleclips\\.com/Player/Bounce\\.aspx\\?eclipid=([0-9a-z]{1,12})&(?:amp;)?bitrateid=([0-9]{1,10})&(?:amp;)?vendorid=([0-9]{1,10})&(?:amp;)?type=\\.flv",
                    pryEmbedSrc = "http://www.imdb.com/images/js/app/video/mediaplayer.swf?file=http%3A%2F%2Fwww.totaleclips.com%2FPlayer%2FBounce.aspx%3Feclipid%3D$2%26bitrateid%3D$3%26vendorid%3D$4%26type%3D.flv&backcolor=0x000000&frontcolor=0xCCCCCC&lightcolor=0xFFFFCC&shuffle=false&autostart=false",
                    pryEmbedWidth = "480",
                    pryEmbedHeight = "380"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "ImageShack",
                    pryWebsite = "http://www.imageshack.us",
                    pryUrlMatch = "http://img([0-9]{1,5})\\.imageshack\\.us/img[0-9]{1,5}/[0-9]{1,7}/([a-z0-9-_]{1,28})\\.(?:flv|swf)",
                    pryEmbedSrc = "http://img$2.imageshack.us/flvplayer.swf?f=T$3&autostart=false",
                    pryEmbedWidth = "424",
                    pryEmbedHeight = "338"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "IndyaRocks",
                    pryWebsite = "http://www.indyarocks.com",
                    pryUrlMatch = "http://(?:www\\.)?indyarocks\\.com/videos/(?:(?:(?:(?:[^-\"]*?)-){1,10})|embed-)([0-9]{1,8})",
                    pryEmbedSrc = "http://www.indyarocks.com/videos/embed-$2",
                    pryEmbedWidth = "425",
                    pryEmbedHeight = "350"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "iReport",
                    pryWebsite = "http://www.ireport.com",
                    pryUrlMatch = "http://www\\.ireport\\.com/docs/DOC-([0-9]{4,8})",
                    pryEmbedSrc = "http://www.ireport.com/themes/custom/resources/cvplayer/ireport_embed.swf?player=embed&configPath=http://www.ireport.com&playlistId=$2&contentId=$2/0&",
                    pryEmbedWidth = "400",
                    pryEmbedHeight = "300"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Izlesene",
                    pryWebsite = "http://www.izlesene.com",
                    pryUrlMatch = "http://(?:www\\.)?izlesene\\.com/(?:player2\\.swf\\?video=|video/(?:[a-z0-9-_]*?)/)([0-9]{1,10})",
                    pryEmbedSrc = "http://www.izlesene.com/player2.swf?video=$2",
                    pryEmbedWidth = "425",
                    pryEmbedHeight = "355"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Jamendo",
                    pryWebsite = "http://www.jamendo.com",
                    pryUrlMatch = "http://(?:www\\.|widgets\\.)?jamendo\\.com/(?:[a-z0-9]*?)/album/(?:\\?album_id=)?([0-9]{1,10})",
                    pryEmbedSrc = "http://widgets.jamendo.com/en/album/?album_id=$2&playertype=2008",
                    pryEmbedWidth = "200",
                    pryEmbedHeight = "300"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Jokeroo",
                    pryWebsite = "http://www.jokeroo.com",
                    pryUrlMatch = "http://(?:www\\.)?jokeroo\\.com/(auto|educational|financial|health|howto|lawyers|politics|travel|extremesports|funnyvideos)/((?:(?:[0-9a-z]*?)/){0,3})?([0-9a-z_]*?)\\.htm",
                    pryEmbedSrc = "http://www.jokeroo.com/promotional_player2.swf?channel&vid=http://uploads.filecabin.com/flash/$4.flv&vid_url=http://www.jokeroo.com/$2/$3$4.html&adv_url",
                    pryEmbedWidth = "490",
                    pryEmbedHeight = "425"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "JujuNation Video",
                    pryWebsite = "http://www.jujunation.com",
                    pryUrlMatch = "http://(?:www\\.)?jujunation.com/viewVideo\\.php\\?video_id=([0-9]{1,10})",
                    pryEmbedSrc = "http://www.jujunation.com/flvplayer.swf?config=http://www.jujunation.com/videoConfigXmlCode.php?pg=video_$2_no_0",
                    pryEmbedWidth = "450",
                    pryEmbedHeight = "370"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "JujuNation Audio",
                    pryWebsite = "http://www.jujunation.com",
                    pryUrlMatch = "http://(?:www\\.)?jujunation.com/music\\.php\\?music_id=([0-9]{1,10})",
                    pryEmbedSrc = "http://www.jujunation.com/player.swf?configXmlPath=http://www.jujunation.com/musicConfigXmlCode.php?pg=music_$2&playListXmlPath=http://www.jujunation.com/musicPlaylistXmlCode.php?pg=music_$2",
                    pryEmbedWidth = "220",
                    pryEmbedHeight = "66"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "JustinTV",
                    pryWebsite = "http://www.justin.tv",
                    pryUrlMatch = "http://(?:\\w{0,3}\\.)?justin\\.tv/(\\w*)",
                    pryEmbedSrc = "http://www.justin.tv/widgets/jtv_player.swf?channel=$2&auto_play=false",
                    pryEmbedWidth = "353",
                    pryEmbedHeight = "295"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Kewego",
                    pryWebsite = "http://www.kewego.co.uk",
                    pryUrlMatch = "http://(?:www\\.)?kewego(?:\\.co\\.uk|\\.com)/video/([0-9a-z]*)\\.html",
                    pryEmbedSrc = "http://www.kewego.com/swf/p3/epix.swf",
                    pryEmbedWidth = "400",
                    pryEmbedHeight = "300",
                    pryFlashVars = "language_code=en&playerKey=$2&skinKey=71703ed5cea1&sig=iLyROoaftv7I&autostart=false"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Koreus",
                    pryWebsite = "http://www.koreus.com",
                    pryUrlMatch = "http://(?:www\\.)?koreus\\.com/video/([0-9a-z-]{1,50})(?:\\.html)?",
                    pryEmbedSrc = "http://www.koreus.com/video/$2",
                    pryEmbedWidth = "400",
                    pryEmbedHeight = "320"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Last.fm (Audio)",
                    pryWebsite = "http://www.last.fm",
                    pryUrlMatch = "http://(?:www\\.)?last\\.fm/music/([0-9a-z%\\+_-]*?)/_/([0-9\\+a-z_-]*)",
                    pryEmbedSrc = "http://cdn.last.fm/webclient/s12n/s/53/lfmPlayer.swf",
                    pryEmbedWidth = "300",
                    pryEmbedHeight = "221",
                    pryFlashVars = "lang=en&amp;lfmMode=playlist&amp;FOD=true&amp;resname=$3&amp;restype=track&amp;artist=$2"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Last.fm (Video)",
                    pryWebsite = "http://www.last.fm",
                    pryUrlMatch = "http://(?:www\\.)?last\\.fm/music/([0-9a-zA-Z%\\+_-]*?)/\\+videos/([0-9\\+a-z_-]{2,20})",
                    pryEmbedSrc = "http://cdn.last.fm/videoplayer/l/17/VideoPlayer.swf",
                    pryEmbedWidth = "340",
                    pryEmbedHeight = "289",
                    pryFlashVars = "uniqueName=$3&amp;FSSupport=true&amp;"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Libero",
                    pryWebsite = "http://www.libero.it",
                    pryUrlMatch = "http://video\\.libero\\.it/app/play(?:/index.html)?\\?(?:[^\"]*?)?id=([a-f0-9]{32})",
                    pryEmbedSrc = "http://video.libero.it/static/swf/eltvplayer.swf?id=$2.flv&ap=0",
                    pryEmbedWidth = "400",
                    pryEmbedHeight = "333"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "LiveLeak",
                    pryWebsite = "http://www.liveleak.com",
                    pryUrlMatch = "http://(?:www\\.)?liveleak\\.com/(?:player.swf?autostart=false&(?:amp;)?token=|view\\?(?:[^\"]*?)?i=|e/)((?:[0-9a-z]{3})_(?:[a-z0-9]{10}))",
                    pryEmbedSrc = "http://www.liveleak.com/e/$2",
                    pryEmbedWidth = "450",
                    pryEmbedHeight = "370"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "LiveVideo",
                    pryWebsite = "http://www.livevideo.com",
                    pryUrlMatch = "http://(?:www\\.)?livevideo\\.com/(?:flvplayer/embed/|video/(?:view/)?(?:(?:[^\"]*?)?/)?)([0-9a-f]{32})",
                    pryEmbedSrc = "http://www.livevideo.com/flvplayer/embed/$2",
                    pryEmbedWidth = "445",
                    pryEmbedHeight = "369"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Machinima (Old)",
                    pryWebsite = "http://www.machinima.com",
                    pryUrlMatch = "http://(?:www\\.)?machinima\\.com/(?:film/view&(?:amp;)?id=|#details_)([0-9]{1,8})(?:_contents)?",
                    pryEmbedSrc = "http://www.machinima.com/_flash_media_player/mediaplayer.swf?file=http://machinima.com/p/$2",
                    pryEmbedWidth = "400",
                    pryEmbedHeight = "300"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Machinima (New)",
                    pryWebsite = "http://www.machinima.com",
                    pryUrlMatch = "http://(?:www\\.)?machinima\\.com:80/f/([0-9a-f]{32})",
                    pryEmbedSrc = "http://machinima.com:80/_flash_media_player/mediaplayer.swf?file=http://machinima.com:80/f/$2",
                    pryEmbedWidth = "400",
                    pryEmbedHeight = "300"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "MSNBC",
                    pryWebsite = "http://www.msnbc.msn.com/",
                    pryUrlMatch = "http://www\\.msnbc\\.msn\\.com/id/(?:[0-9]{1,9})/vp/([0-9]{1,9})",
                    pryEmbedSrc = "http://msnbcmedia.msn.com/i/MSNBC/Components/Video/_Player/swfs/embedPlayer/EmbeddedPlayer_I4.swf?domain=www.msnbc.msn.com&amp;settings=22425448&amp;useProxy=true&amp;wbDomain=www.msnbc.msn.com&amp;launch=$2&amp;sw=1920&amp;sh=1200&amp;EID=oVPEFC&amp;playerid=22425001",
                    pryEmbedWidth = "425",
                    pryEmbedHeight = "339"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Video.mail.ru",
                    pryWebsite = "http://video.mail.ru",
                    pryUrlMatch = "http://video\\.mail\\.ru/mail/([0-9a-z_-]*?)/([0-9]{1,4})/([0-9]{1,4})\\.html",
                    pryEmbedSrc = "http://img.mail.ru/r/video2/player_v2.swf?par=http://content.video.mail.ru/mail/$2/$3/\\$$4&page=1&username=$2&albumid=$3&id=$4",
                    pryEmbedWidth = "452",
                    pryEmbedHeight = "385"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "MadnessVideo",
                    pryWebsite = "http://www.madnessvideo.net",
                    pryUrlMatch = "http://(?:www\\.)?madnessvideo\\.net/(.*)",
                    pryEmbedSrc = "http://www.madnessvideo.net/emb.aspx/$2",
                    pryEmbedWidth = "400",
                    pryEmbedHeight = "320"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "MotionBox",
                    pryWebsite = "http://www.motionbox.com",
                    pryUrlMatch = "http://(?:www\\.)?motionbox\\.com/videos/([0-9a-f]{14})",
                    pryEmbedSrc = "http://www.motionbox.com/external/hd_player/type%3Dsd%2Cvideo_uid%3D$2",
                    pryEmbedWidth = "416",
                    pryEmbedHeight = "312"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Mpora",
                    pryWebsite = "http://video.mpora.com",
                    pryUrlMatch = "http://video\\.mpora\\.com/watch/(\\w{9})",
                    pryEmbedSrc = "http://video.mpora.com/ep/$2/",
                    pryEmbedWidth = "425",
                    pryEmbedHeight = "350"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Mp3tube",
                    pryWebsite = "http://www.mp3tube.net",
                    pryUrlMatch = "(http://(?:www\\.)?mp3tube\\.net\\/play\\.swf\\?id=(?:[0-9a-f]{32}))",
                    pryEmbedSrc = "$2",
                    pryEmbedWidth = "260",
                    pryEmbedHeight = "60"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "MtvU (Usa Only)",
                    pryWebsite = "http://www.mtvu.com",
                    pryUrlMatch = "http://(?:www\\.)?mtvu\\.com/video/\\?id=([0-9]{1,9})(?:[^\"]*?)vid=([0-9]{1,9})",
                    pryEmbedSrc = "http://media.mtvu.com/player/embed/AS3/site/",
                    pryEmbedWidth = "423",
                    pryEmbedHeight = "318",
                    pryFlashVars = "CONFIG_URL=http://media.mtvu.com/player/embed/AS3/site/configuration.jhtml%3fid%3D$2%26vid%3D$3%26autoPlay%3Dfalse&amp;allowFullScreen=true"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "MP3 Audio",
                    pryWebsite = "",
                    pryUrlMatch = "(http://[^\"\"\\`\\<\\>\\@\\*\\$]*?\\.mp3)$",
                    pryEmbedSrc = "http://www.google.com/reader/ui/3523697345-audio-player.swf",
                    pryEmbedWidth = "400",
                    pryEmbedHeight = "27",
                    pryFlashVars = "audioUrl=$2"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "MyNet",
                    pryWebsite = "http://video.eksenim.mynet.com/",
                    pryUrlMatch = "http://video\\.eksenim\\.mynet\\.com/(?:[0-9a-z_-]*?)/(?:[0-9a-z_-]*?)/([0-9]{1,12})/",
                    pryEmbedSrc = "http://video.eksenim.mynet.com/flvplayers/vplayer9.swf?videolist=http://video.eksenim.mynet.com/batch/video_xml_embed.php?video_id=$2",
                    pryEmbedWidth = "400",
                    pryEmbedHeight = "334"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "MyShows.cn/SeeHaha.com",
                    pryWebsite = "http://www.myshows.cn",
                    pryUrlMatch = "(http://www\\.seehaha\\.com/flash/player\\.swf\\?vidFileName=(?:[0-9]*?)\\.flv)",
                    pryEmbedSrc = "$2",
                    pryEmbedWidth = "425",
                    pryEmbedHeight = "350"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "MySpaceTv",
                    pryWebsite = "http://www.myspacetv.com",
                    pryUrlMatch = "http://(?:vids\\.myspace|myspacetv)\\.com/index\\.cfm\\?(?:[^\"]*?)?VideoID=([0-9]{1,10})",
                    pryEmbedSrc = "http://mediaservices.myspace.com/services/media/embed.aspx/m=$2",
                    pryEmbedWidth = "425",
                    pryEmbedHeight = "360"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "MyVideo",
                    pryWebsite = "http://www.myvideo.de",
                    pryUrlMatch = "http://(?:www\\.)?myvideo\\.(at|be|ch|de|nl)/(?:watch|movie)/([0-9]{1,8})",
                    pryEmbedSrc = "http://www.myvideo.$2/movie/$3",
                    pryEmbedWidth = "470",
                    pryEmbedHeight = "406"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "MyVi",
                    pryWebsite = "http://myvi.ru",
                    pryUrlMatch = "(http://(?:www\\.)?myvi\\.ru/ru/flash/player/(?:[0-9a-z_-]{45}))",
                    pryEmbedSrc = "$2",
                    pryEmbedWidth = "450",
                    pryEmbedHeight = "418"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "M Thai",
                    pryWebsite = "http://video.mthai.com",
                    pryUrlMatch = "http://video\\.mthai\\.com/player\\.php\\?(?:[^\"]*?)?id=([0-9a-z]{14,20})",
                    pryEmbedSrc = "http://video.mthai.com/Flash_player/player.swf?idMovie=$2",
                    pryEmbedWidth = "407",
                    pryEmbedHeight = "342"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "NewGrounds",
                    pryWebsite = "http://www.newgrounds.com",
                    pryUrlMatch = "(http://uploads\\.ungrounded\\.net/(?:[0-9]{1,12})/(?:[0-9]{1,12})_(?:[0-9a-z_-]*?)\\.swf)",
                    pryEmbedSrc = "$2?autostart=false&autoplay=false",
                    pryEmbedWidth = "480",
                    pryEmbedHeight = "400",
                });
                  lstProviders.Add( new provider(){
                    pryName = "NhacCuaTui",
                    pryWebsite = "http://www.nhaccuatui.com",
                    pryUrlMatch = "http://(?:www\\.)?nhaccuatui\\.com/(?:nghe\\?M=|m/)([a-z0-9-_]{10})",
                    pryEmbedSrc = "http://www.nhaccuatui.com/m/$2",
                    pryEmbedWidth = "300",
                    pryEmbedHeight = "270"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "OnSmash",
                    pryWebsite = "http://www.onsmash.com",
                    pryUrlMatch = "http://(?:www\\.|videos\\.)?onsmash\\.com/(?:v|e)/([0-9a-z]{16})",
                    pryEmbedSrc = "http://videos.onsmash.com/e/$2",
                    pryEmbedWidth = "448",
                    pryEmbedHeight = "374"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Orb",
                    pryWebsite = "http://www.orb.com",
                    pryUrlMatch = "http://mycast\\.orb\\.com/orb/html/qs\\?mediumId=([0-9a-z]{8})&(?:amp;)?l=([0-9a-z_-]{1,20})",
                    pryEmbedSrc = "http://mycast.orb.com/orb/resources/common/videoplayer.swf?file=http%3A%2F%2Fmycast.orb.com%2Forb%2Fxml%2Fstream%3FstreamFormat%3Dswf%26mediumId%3D$2%26l%3D$3&showdigits=true&autostart=false&shuffle=false&showeq=true&showfsbutton=true",
                    pryEmbedWidth = "439",
                    pryEmbedHeight = "350"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Photobucket",
                    pryWebsite = "http://www.photobucket.com",
                    pryUrlMatch = "http://media\\.photobucket\\.com\\/video\\/.*\\/videos",
                    pryFetchMatch = "(http://vid[0-9]{1,3}\\.photobucket\\.com/albums/[a-z0-9]{2,5}/[a-z0-9\\-_]*/videos/[a-z0-9\\-_]*\\.flv)",
                    pryEmbedSrc = "http://media.photobucket.com/flash/player.swf?file=$2",
                    pryEmbedWidth = "448",
                    pryEmbedHeight = "361"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "PikNikTube",
                    pryWebsite = "http://www.pikniktube.com",
                    pryUrlMatch = "http://(?:www\\.)?pikniktube\\.com/(?:v/|(?:(?:[^\"]*?)\\?q=))([0-9a-f]{32})",
                    pryEmbedSrc = "http://www.pikniktube.com/player/videoplayer2.swf?linktarget=_blank&embedded=1&xmlsrc=http://www.pikniktube.com/getxmle.asp?q=$2&a=1&c=0",
                    pryEmbedWidth = "340",
                    pryEmbedHeight = "320"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Project Playlist",
                    pryWebsite = "http://www.playlist.com",
                    pryUrlMatch = "http://(?:www\\.)?playlist\\.com/(?:standalone|node)/([0-9]{1,10})",
                    pryEmbedSrc = "http://www.playlist.com/media/mp3player-standalone.swf?playlist_url=http://www.playlist.com/node/$2/playlist/xspf&config=http://www.musiclist.us/mc/config/config_black.xml&mywidth=435",
                    pryEmbedWidth = "435",
                    pryEmbedHeight = "270"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Putfile",
                    pryWebsite = "http://www.putfile.com",
                    pryUrlMatch = "http://(?:www\\.|media\\.|feat\\.)?putfile\\.com/(?:flow/putfile\\.swf\\?videoFile=|)?([a-z0-9-_]*)(?:\\?)?",
                    pryEmbedSrc = "http://feat.putfile.com/flow/putfile.swf?videoFile=$2",
                    pryEmbedWidth = "425",
                    pryEmbedHeight = "345"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Rambler",
                    pryWebsite = "http://vision.rambler.ru",
                    pryUrlMatch = "http://vision\\.rambler\\.ru/(?:i/e\\.swf\\?id=|users/)((?:[0-9a-z_-]*?)/(?:[0-9]*?)/(?:[0-9]*))",
                    pryEmbedSrc = "http://vision.rambler.ru/i/e.swf?id=$2&logo=1",
                    pryEmbedWidth = "390",
                    pryEmbedHeight = "370"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "RawVegas",
                    pryWebsite = "http://www.rawvegas.tv",
                    pryUrlMatch = "http://(?:www\\.)?rawvegas\\.tv/watch/[a-z\\-0-9]*/([0-9a-f]{30})",
                    pryEmbedSrc = "http://www.rawvegas.tv/ext.php?uniqueVidID=$2",
                    pryEmbedWidth = "427",
                    pryEmbedHeight = "300"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "RuTube",
                    pryWebsite = "http://www.rutube.ru",
                    pryUrlMatch = "http://(?:www\\.|video\\.)?rutube\\.ru/(?:tracks/\\d+?\\.html\\?(?:(?:pos|related)=1&(?:amp;)?)?v=)?([0-9a-f]{32})",
                    pryEmbedSrc = "http://video.rutube.ru/$2",
                    pryEmbedWidth = "470",
                    pryEmbedHeight = "353"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "ScreenToaster",
                    pryWebsite = "http://www.screentoaster.com",
                    pryUrlMatch = "http://(?:www\\.)?screentoaster\\.com/watch/([0-9a-zA-Z]+)",
                    pryEmbedSrc = "http://www.screentoaster.com/swf/STPlayer.swf?video=$2",
                    pryEmbedWidth = "425",
                    pryEmbedHeight = "344",
                    pryFlashVars = "video=$2"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "SevenLoad",
                    pryWebsite = "http://www.sevenload.com",
                    pryUrlMatch = "http://((?:en|tr|de|www)\\.)?sevenload\\.com/(?:videos|videolar)/([0-9a-z]{1,8})",
                    pryEmbedSrc = "http://$2sevenload.com/pl/$3/425x350/swf",
                    pryEmbedWidth = "425",
                    pryEmbedHeight = "350"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "ShareView",
                    pryWebsite = "http://www.shareview.us",
                    pryUrlMatch = "http://(?:www\\.)?shareview\\.us/video/([0-9]{1,10})/",
                    pryEmbedSrc = "http://www.shareview.us/nvembed.swf?key=$2",
                    pryEmbedWidth = "540",
                    pryEmbedHeight = "380"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Sharkle",
                    pryWebsite = "http://www.sharkle.com",
                    pryUrlMatch = "(http://(?:www\\.)?sharkle\\.com/externalPlayer/(?:(?:(?:[0-9a-z]{1,25})/){3}))",
                    pryEmbedSrc = "$2",
                    pryEmbedWidth = "340",
                    pryEmbedHeight = "310"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Smotri",
                    pryWebsite = "http://www.smotri.com",
                    pryUrlMatch = "http://(?:www\\.)?smotri\\.com/video/view/\\?id=v([0-9a-f]{10})",
                    pryEmbedSrc = "http://pics.smotri.com/scrubber_custom8.swf?file=$2&bufferTime=3&autoStart=false&str_lang=eng&xmlsource=http%3A%2F%2Fpics.smotri.com%2Fcskins%2Fblue%2Fskin_color_lightaqua.xml&xmldatasource=http%3A%2F%2Fpics.smotri.com%2Fskin_ng.xml",
                    pryEmbedWidth = "400",
                    pryEmbedHeight = "330"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Snotr",
                    pryWebsite = "http://www.snotr.com",
                    pryUrlMatch = "http://(?:www\\.|videos\\.)?snotr\\.com/(?:player\\.swf\\?video=|)?(?:video|embed)/([0-9]{1,8})",
                    pryEmbedSrc = "http://videos.snotr.com/player.swf?video=$2&amp;embedded=true&amp;autoplay=false",
                    pryEmbedWidth = "400",
                    pryEmbedHeight = "330"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "SouthPark Studios",
                    pryWebsite = "http://www.southparkstudios.com",
                    pryUrlMatch = "http://(?:www\\.)?southparkstudios\\.com/clips/([0-9]{1,10})",
                    pryEmbedSrc = "http://media.mtvnservices.com/mgid:cms:item:southparkstudios.com:$2:",
                    pryEmbedWidth = "480",
                    pryEmbedHeight = "360"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Space.tv.cctv.com",
                    pryWebsite = "http://space.tv.cctv.com",
                    pryUrlMatch = "http://((?:(?:[a-z0-9]{1,10})\\.){0,2})?cctv\\.com/act/video\\.jsp\\?videoId=VIDE([0-9]{16})",
                    pryEmbedSrc = "http://$2cctv.com/playcfg/player_new.swf?id=VIDE$3&site=http://$2cctv.com&method=http",
                    pryEmbedWidth = "500",
                    pryEmbedHeight = "400"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Spike",
                    pryWebsite = "http://www.spike.com",
                    pryUrlMatch = "http://(?:www\\.)?spike\\.com/(?:video/(?:[0-9a-z_-]{2,30})?/|efp\\?flvbaseclip=)([0-9]{4,12})",
                    pryEmbedSrc = "http://www.spike.com/efp?flvbaseclip=$2&",
                    pryEmbedWidth = "448",
                    pryEmbedHeight = "365"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Songza",
                    pryWebsite = "http://www.songza.com",
                    pryUrlMatch = "(http://(?:www\\.)?songza\\.com/e/listen\\?(?:zName=(?:[0-9a-z_\\%-]*?)&(?:amp;)?)?zId=(?:[0-9a-z_-]{16}))",
                    pryEmbedSrc = "$2&zAutostart=false&zType=flv",
                    pryEmbedWidth = "425",
                    pryEmbedHeight = "114"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Streetfire",
                    pryWebsite = "http://www.streetfire.net",
                    pryUrlMatch = "http://(?:www\\.|videos\\.)?streetfire\\.net/video/(?:[0-9a-z\\-_]*)\\.htm",
                    pryFetchMatch = "<link rel=\"video_src\" href=\"([A-z:\\/\\.0-9-_=?]*)",
                    pryEmbedSrc = "$2",
                    pryEmbedWidth = "428",
                    pryEmbedHeight = "352"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "StupidVideos",
                    pryWebsite = "http://www.stupidvideos.com",
                    pryUrlMatch = "http://(?:www\\.|images\\.)?stupidvideos\\.com/(?:video/(?:[^\"\\#]*?)\\#|images/player/player\\.swf\\?sa=1&(?:amp;)?sk=7&(?:amp;)?si=2&(?:amp;)?i=)([0-9]{1,10})",
                    pryEmbedSrc = "http://images.stupidvideos.com/2.0.2/swf/video.swf?sa=1&sk=7&si=2&i=$2",
                    pryEmbedWidth = "451",
                    pryEmbedHeight = "433"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "TagTélé",
                    pryWebsite = "http://www.tagtele.com",
                    pryUrlMatch = "http://www\\.tagtele\\.com/(?:v/|videos/voir/)([0-9]{1,12})",
                    pryEmbedSrc = "http://www.tagtele.com/v/$2",
                    pryEmbedWidth = "425",
                    pryEmbedHeight = "350"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Ted.com",
                    pryWebsite = "http://www.ted.com",
                    pryUrlMatch = "http://(?:www\\.)?ted\\.com/(index.php/)?talks/[a-z0-9\\-_]*.html",
                    pryFetchMatch = "hs:\"talks\\/dynamic\\/([a-z0-9-_]*)-high\\.flv",
                    pryEmbedSrc = "http://video.ted.com/assets/player/swf/EmbedPlayer.swf",
                    pryEmbedWidth = "446",
                    pryEmbedHeight = "326",
                    pryFlashVars = "vu=http://video.ted.com/talks/dynamic/$2-medium.flv&su=http://images.ted.com/images/ted/tedindex/embed-posters/$2.embed_thumbnail.jpg&vw=432&vh=240"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "The Onion",
                    pryWebsite = "http://www.theonion.com",
                    pryUrlMatch = "http://(?:www\\.)?theonion\\.com/content/video/.*",
                    pryFetchMatch = "videoid\\s?=\\s?\"([0-9]{2,7})\";.*var image_url\\s?=\\s?escape\\(\"([^\"]*)\"",
                    pryEmbedSrc = "http://www.theonion.com/content/themes/common/assets/onn_embed/embedded_player.swf?image=$3&amp;videoid=$2",
                    pryEmbedWidth = "480",
                    pryEmbedHeight = "430"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "TinyPic",
                    pryWebsite = "http://www.tinypic.com",
                    pryUrlMatch = "http://(?:www\\.)?tinypic\\.com/player\\.php\\?v=([0-9a-z-&=]{1,12})",
                    pryEmbedSrc = "http://v5.tinypic.com/player.swf?file=$2",
                    pryEmbedWidth = "440",
                    pryEmbedHeight = "420"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Todays Big Thing",
                    pryWebsite = "http://www.todaysbigthing.com",
                    pryUrlMatch = "http://(?:www|entertainment|sports|technology|music|funnyvideos)\\.todaysbigthing\\.com/[0-9]{4}(?:/[0-9]{2}){2}",
                    pryFetchMatch = "http://(?:www|entertainment|sports|technology|music|funnyvideos)\\.todaysbigthing\\.com/betamax/betamax\\.internal\\.swf\\?item_id=([0-9]{1,6})",
                    pryEmbedSrc = "http://www.todaysbigthing.com/betamax/betamax.swf?item_id=$2&fullscreen=1",
                    pryEmbedWidth = "480",
                    pryEmbedHeight = "360"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "TrailerAddict",
                    pryWebsite = "http://www.traileraddict.com",
                    pryUrlMatch = "http://(?:www\\.)?traileraddict\\.com/trailer/",
                    pryFetchMatch = "(http://(?:www\\.)?traileraddict\\.com/em(?:d|b)/(?:[0-9]{1,10}))",
                    pryEmbedSrc = "$2",
                    pryEmbedWidth = "450",
                    pryEmbedHeight = "279"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "TrTube",
                    pryWebsite = "http://www.trtube.com",
                    pryUrlMatch = "http://(?:www\\.)?trtube\\.com/izle\\.php\\?v=([a-z]{1,12})",
                    pryEmbedSrc = "http://www.trtube.com/mediaplayer_3_15.swf?file=http://www.trtube.com/vid2/89457.flv&image=http://www.trimg.com/vi/89457.gif&autostart=false",
                    pryEmbedWidth = "425",
                    pryEmbedHeight = "350"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Trilulilu",
                    pryWebsite = "http://www.trilulilu.ro",
                    pryUrlMatch = "http://(?:www\\.)?trilulilu\\.ro/([0-9a-z_-]*?)/([0-9a-f]{14})",
                    pryFetchMatch = "<link rel=\"video_src\" href=\"([A-z:\\/\\.0-9-_=?]*)\\?autoplay", 
                    pryEmbedSrc = "$2",
                    pryEmbedWidth = "440",
                    pryEmbedHeight = "362"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Tu",
                    pryWebsite = "http://www.tu.tv",
                    pryUrlMatch = "(http://tu\\.tv/tutvweb\\.swf\\?xtp=(?:[0-9]{1,10}))",
                    pryEmbedSrc = "$2",
                    pryEmbedWidth = "425",
                    pryEmbedHeight = "350"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Tudou",
                    pryWebsite = "http://www.tudou.com",
                    pryUrlMatch = "http://(?:www\\.)?tudou\\.com/(?:programs/view/|v/)([a-z0-9-]{1,12})",
                    pryEmbedSrc = "http://www.tudou.com/v/$2",
                    pryEmbedWidth = "400",
                    pryEmbedHeight = "300"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Tumblr (Music)",
                    pryWebsite = "http://www.tumblr.com",
                    pryUrlMatch = "http://[a-z0-9-_]{2,30}\\.tumblr\\.com/post/[0-9]{3,10}/",
                    pryFetchMatch = "<embed type=\"application/x-shockwave-flash\" src=\"(http://[a-z0-9-_./]*\\?audio_file=http://www\\.tumblr\\.com/audio_file/[0-9]{5,8}/[a-z0-9]{24})",
                    pryEmbedSrc = "$2&amp;color=e4e4e4",
                    pryEmbedWidth = "207",
                    pryEmbedHeight = "27"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Twitvid",
                    pryWebsite = "http://www.twitvid.com/",
                    pryUrlMatch = "http://(?:www\\.)?twitvid\\.com/([0-9a-z]{1,10})",
                    pryEmbedSrc = "http://www.twitvid.com/player/$2",
                    pryEmbedWidth = "425",
                    pryEmbedHeight = "344"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "UOL VideoLog",
                    pryWebsite = "http://videolog.uol.com.br",
                    pryUrlMatch = "http://videolog\\.uol\\.com\\.br/video(?:\\?|\\.php\\?id=)([0-9]{1,9})",
                    pryEmbedSrc = "http://www.videolog.tv/swfs/externo_api.swf?v=$2&amp;id_video=$2",
                    pryEmbedWidth = "512",
                    pryEmbedHeight = "384"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "u-Tube",
                    pryWebsite = "http://www.u-tube.ru",
                    pryUrlMatch = "http://(?:www\\.)?u-tube\\.ru/(?:playlist\\.php\\?id=|pages/video/)([0-9]{1,12})",
                    pryEmbedSrc = "http://www.u-tube.ru/upload/others/flvplayer.swf?file=http://www.u-tube.ru/playlist.php?id=$2&width=400&height=300",
                    pryEmbedWidth = "400",
                    pryEmbedHeight = "300"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "VideoJug",
                    pryWebsite = "http://www.videojug.com",
                    pryUrlMatch = "http://(?:www\\.)videojug\\.com/film/",
                    pryFetchMatch = "http:\\/\\/www.videojug.com\\/player\\/videoJugPlayer.swf\\?id=((?:[0-9a-f]{1,12}-?){5})",
                    pryEmbedSrc = "http://www.videojug.com/views/player/Player.swf",
                    pryEmbedWidth = "400",
                    pryEmbedHeight = "345",
                    pryFlashVars = "embedded=true&amp;ClientType=0&amp;id=$2&amp;type=film&amp;host=http%3a%2f%2fwww.videojug.com&amp;ar=16_9"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "videos.sapo",
                    pryWebsite = "http://videos.sapo.pt",
                    pryUrlMatch = "http://(www\\.|(?:(?:(?:[0-9a-z]{3,12})\\.){1,2}))?sapo\\.pt/([0-9a-z]{20})",
                    pryEmbedSrc = "http://$2sapo.pt/play?file=http://$2sapo.pt/$3/mov/1",
                    pryEmbedWidth = "400",
                    pryEmbedHeight = "322"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Vidiac",
                    pryWebsite = "http://www.vidiac.com",
                    pryUrlMatch = "http://(?:www\\.)?vidiac\\.com/video/((?:[0-9a-z]{8})(?:(?:-(?:[0-9a-z]{4})){3})-(?:[0-9a-z]{12}))\\.htm",
                    pryEmbedSrc = "http://www.vidiac.com/vidiac.swf?video=$2",
                    pryEmbedWidth = "428",
                    pryEmbedHeight = "352"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Viddler",
                    pryWebsite = "http://www.viddler.com",
                    pryUrlMatch = "(http://www\\.viddler\\.com/(?:player|simple)/(?:[0-9a-f]{8})/)",
                    pryEmbedSrc = "$2",
                    pryEmbedWidth = "437",
                    pryEmbedHeight = "288"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Videa",
                    pryWebsite = "http://www.videa.hu",
                    pryUrlMatch = "http://(?:www\\.)?videa\\.hu/(?:(?:[^\"]*)-|flvplayer\\.swf\\?v=)([0-9a-z]{16})",
                    pryEmbedSrc = "http://videa.hu/flvplayer.swf?v=$2",
                    pryEmbedWidth = "434",
                    pryEmbedHeight = "357"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "VidiLife",
                    pryWebsite = "http://www.vidilife.com",
                    pryUrlMatch = "(http://(?:www\\.)?vidilife\\.com/flash/flvplayer\\.swf\\?xml=http://(?:www\\.)?vidilife\\.com/media/play_flash_xml\\.cfm\\?id=(?:[0-9a-f]{8})-(?:[0-9a-f]{4})-(?:[0-9a-f]{4})-(?:[0-9a-f]{4})-(?:[0-9a-f]{1}))",
                    pryEmbedSrc = "$2",
                    pryEmbedWidth = "445",
                    pryEmbedHeight = "363"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "VidMax",
                    pryWebsite = "http://www.vidmax.com",
                    pryUrlMatch = "http://(www\\.)?vidmax\\.com/(?:index\\.php/)?videos?/(?:view/)?([0-9]{1,10})",
                    pryEmbedSrc = "http://www.vidmax.com/player.swf",
                    pryEmbedWidth = "400",
                    pryEmbedHeight = "300",
                    pryFlashVars = "file=http://www.vidmax.com/media/video/$3.flv&amp;streamer=lighttpd&amp;autostart=false&amp;stretching=fill"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Vidivodo",
                    pryWebsite = "http://www.vidivodo.com",
                    pryUrlMatch = "http://www\\.vidivodo\\.com/VideoPlayerShare\\.swf\\?lang=([0-9a-z]*?)&(?:amp;)?vidID=([0-9]*?)&(?:amp;)?vCode=v([0-9]*?)&(?:amp;)?dura=([0-9]*?)&(?:amp;)?File=(?:http://video(?:[0-9]*?)\\.vidivodo\\.com/)?(vidservers/server(?:[0-9]*?)/videos/(?:[0-9]{4})/(?:[0-9]{2})/(?:[0-9]{2})/(?:[0-9]*?)/v(?:[0-9]*?)\\.flv)",
                    pryEmbedSrc = "http://www.vidivodo.com/VideoPlayerShare.swf?lang=$2&vidID=$3&vCode=v$4&dura=$5&File=$6",
                    pryEmbedWidth = "425",
                    pryEmbedHeight = "343"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "VoiceThread",
                    pryWebsite = "http://www.voicethread.com",
                    pryUrlMatch = "http://(?:www\\.)?voicethread\\.com/(?:share/|book\\.swf\\?b=|#q\\.b)([0-9]{1,10})",
                    pryEmbedSrc = "http://www.voicethread.com/book.swf?b=$2",
                    pryEmbedWidth = "480",
                    pryEmbedHeight = "360"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "VSocial (Type1)",
                    pryWebsite = "http://www.vsocial.com/vsandbox/",
                    pryUrlMatch = "http://(?:www\\.|static\\.)?vsocial\\.com/(?:video/|flash/ups\\.swf)\\?d=([0-9]{1,8})",
                    pryEmbedSrc = "http://static.vsocial.com/flash/ups.swf?d=$2&a=0",
                    pryEmbedWidth = "410",
                    pryEmbedHeight = "400"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "VSocial (Type2)",
                    pryWebsite = "http://www.vsocial.com/vsandbox/",
                    pryUrlMatch = "(http://(?:www\\.)?vsocial\\.com/ups/(?:[a-f0-9]{32}))",
                    pryEmbedSrc = "$2",
                    pryEmbedWidth = "410",
                    pryEmbedHeight = "400"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "WeGame",
                    pryWebsite = "http://www.wegame.com",
                    pryUrlMatch = "http://(?:www\\.)?wegame\\.com/watch/([0-9a-z_-]*?)/",
                    pryEmbedSrc = "http://wegame.com/static/flash/player2.swf?tag=$2",
                    pryEmbedWidth = "480",
                    pryEmbedHeight = "387"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Webshots (Slideshows)",
                    pryWebsite = "http://www.webshots.com",
                    pryUrlMatch = "http://[a-z0-9\\-_]*\\.webshots\\.com/slideshow/([a-z0-9]*)",
                    pryEmbedSrc = "http://p.webshots.com/flash/smallslideshow.swf",
                    pryEmbedWidth = "425",
                    pryEmbedHeight = "384",
                    pryFlashVars = "playList=http%3A%2F%2Fcommunity.webshots.com%2Fslideshow%2Fmeta%2F$2%3Finline%3Dtrue&inlineUrl=http%3A%2F%2Fcommunity.webshots.com%2FinlinePhoto%26src%3Ds%26referPage%3Dhttp%3A%2F%2Fgood-times.webshots.com%2Fslideshow%2F$2&postRollContent=http%3A%2F%2Fp.webshots.com%2Fflash%2Fws_postroll.swf&shareUrl=http%3A%2F%2Fgood-times.webshots.com%2Fslideshow%2F$2&audio=on&audioVolume=33&autoPlay=false&transitionSpeed=5&startIndex=0&panzoom=on&deployed=true"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Yahoo Video",
                    pryWebsite = "http://video.yahoo.com",
                    pryUrlMatch = "http://(?:(?:www|uk|fr|it|es|br|au|mx|de|ca)\\.)?video\\.yahoo\\.com/watch/([0-9]{1,12})/([0-9]{1,12})",
                    pryEmbedSrc = "http://d.yimg.com/static.video.yahoo.com/yep/YV_YEP.swf?ver=2.1.15",
                    pryEmbedWidth = "512",
                    pryEmbedHeight = "322",
                    pryFlashVars = "id=$3&vid=$2&lang=en-us&intl=us&embed=1"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Yahoo Video HK",
                    pryWebsite = "http://hk.video.yahoo.com",
                    pryUrlMatch = "http://(?:w\\.video\\.)?hk\\.video\\.yahoo\\.(?:com|net)/video/(?:dplayer\\.html\\?vid=|video\\.html\\?id=)([0-9]{1,10})",
                    pryEmbedSrc = "http://w.video.hk.yahoo.net/video/dplayer.html?vid=$2",
                    pryEmbedWidth = "420",
                    pryEmbedHeight = "370"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "Yahoo Music Videos",
                    pryWebsite = "http://music.yahoo.com",
                    pryUrlMatch = "http://(?:new\\.)?(?:(?:uk|fr|it|es|br|au|mx|de|ca)\\.)?music\\.yahoo\\.com/[^0-9]*([0-9]{1,12})$",
                    pryEmbedSrc = "http://d.yimg.com/cosmos.bcst.yahoo.com/up/fop/embedflv/swf/fop.swf?id=v$2&eID=0000000&lang=us&enableFullScreen=0&shareEnable=1",
                    pryEmbedWidth = "400",
                    pryEmbedHeight = "255"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "YouKu",
                    pryWebsite = "http://www.youku.com",
                    pryUrlMatch = "http://(?:v\\.youku\\.com/v_show/id_|player\\.youku\\.com/player\\.php/sid/)([0-9a-z]{6,14})",
                    pryEmbedSrc = "http://player.youku.com/player.php/sid/$2=/v.swf",
                    pryEmbedWidth = "450",
                    pryEmbedHeight = "372"
                  });
                  lstProviders.Add( new provider(){
                    pryName = "You.Video.Sina.com.cn",
                    pryWebsite = "http://you.video.sina.com.cn",
                    pryUrlMatch = "http://(?:vhead\\.blog|you\\.video)\\.sina\\.com\\.cn/(?:player/(?:[^\"]*?)vid=|b/)([0-9]{5,12})(?:-|&(?:amp;)?uid=)([0-9]{5,12})",
                    pryEmbedSrc = "http://vhead.blog.sina.com.cn/player/outer_player.swf?auto=0&vid=$2&uid=$3",
                    pryEmbedWidth = "480",
                    pryEmbedHeight = "370"
                  });
                  

                  return lstProviders;
            }
        }
    }
}